2023/12/23716字符
预编译
- 创建AO对象
- 找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
- 将实参值和形参统一
- 在函数体里面找函数声明,值赋予函数体
test(); //--> a
function test () {
console.log('a');
}
console.log(a); //--> 123
var a = 123;
函数声明整体提升,变量 声明提升(不能解决所有问题)
var a = 10;
(function a () {
a = 20;
console.log(a); //--> f a () {...}
}())
console.log(a); //--> 10
var x = 1, y = z = 0;
function add (n) {
return n = n + 1;
}
y = add(x); //--> 4
function add (n) {
return n = n + 3;
}
z = add(x); //--> 4